// Package models 定义数据模型结构体
package models

import (
	"time"
)

// TaskGroup 任务分组模型结构体
type TaskGroup struct {
	// ID 任务分组唯一标识符
	ID uint64 `json:"id" gorm:"primaryKey;autoIncrement"`
	// UserID 关联的用户ID
	UserID uint64 `json:"user_id" gorm:"index"`
	// Name 任务分组名称
	Name string `json:"name"`
	// IsDefault 是否为默认分组
	IsDefault bool `json:"is_default"`
	// CreatedAt 创建时间
	CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
	// UpdatedAt 更新时间
	UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
	// DeletedAt 软删除时间戳
	DeletedAt *time.Time `json:"-" gorm:"index"`
	// User 关联的用户对象
	User User `json:"-" gorm:"foreignKey:UserID"`
	// Tasks 关联的任务列表
	Tasks []Task `json:"-" gorm:"foreignKey:GroupID"`
}

// TableName 指定TaskGroup模型对应的数据库表名
// 返回值: string - 表名
func (TaskGroup) TableName() string {
	return "task_groups"
}
